<?php

	class LoginView
	{
		//Variabler för formuläret
		private $getUserName = "loginUserName";
		private $getPassword = "loginPassword";
		private $getLoginButton = "loginButton";
		private $getLogoutButton = "logoutButton";
		private $rememberMe = "rememberMe";
		
		//Variabler för Cookies
		private $userNameCookie = "userName";
		private $passwordCookie = "password";
		
		//Variabler för array
		private $arrayUserName = "arrayUserName";
		private $arrayPassword = "arrayPassword";
		
		//Login switch message
		const USER_LOGIN_YES = 1;
		const USER_LOGIN_FAIL = 2;
		const USER_LOGIN_NO = 3;
		
		//Header switch
		const LOGINCONTROLLER_HEADER = 1;
		//Funktion som renderar ut inloggningssida.
		public function DoLoginBox()
		{
			$loginBox = "<form name='loginBox' method='get'>
	      					<div>
					       		<p>Namn:</p>
					    		<input type='text' name='$this->getUserName' />
					    		<p>Lösenord:</p>    
					    		<input type='password' name='$this->getPassword' />
					    	</div>
					    	</div>
					    		<input type='checkbox' name='$this->rememberMe' /> Remember me!
					    	</div>
				    		<div>
				      			<input type='submit' name='$this->getLoginButton' value='Login' />
				      		</div>
     
     					</form>";
			return $loginBox;
		}
		
		//Funktion som renderar ut utloggningssida.
		public function DoLogoutBox()
		{
			$logoutBox = "<form name='logoutButton' method='get'>
  							<div>
			      				<input type='submit' value='Logga ut' name='$this->getLogoutButton' />
     						</div>
     					</form>";
			return $logoutBox;	
		}
		
		//Funktion som hämtar ut användarnamn från formuläret.
		public function GetUserName()
		{
			if ($_GET[$this->getUserName] != "")
			{
				return $_GET[$this->getUserName];
			}
			else 
			{
				return false;		
			}
		}
		
		//Funktion som hämtar ut lösenord från formuläret.
		public function GetPassword()
		{
			if ($_GET[$this->getPassword] != "")
			{
				return $_GET[$this->getPassword];
			}
			else 
			{
				return false;		
			}
		}
		
		//Funktion som testar om användaren tryckt på logga in.
		public function TriedToLogin()
		{
			if (isset ($_GET[$this->getLoginButton]))
			{
				return $_GET[$this->getLoginButton];
			}
			else 
			{
				return false;		
			}
		}
		
		//Funktion som testar om användaren tryckt på logga ut.
		public function TriedToLogout()
		{
			if (isset ($_GET[$this->getLogoutButton]))
			{
				return true;
			}
			else 
			{
				return false;		
			}
		}
		
		//Funktion för att testa om användaren vill bli ihågkommen.
		public function RememberMe()
		{
			if (isset ($_GET[$this->rememberMe]))
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		
		//Funktion för att sätta cookies för användarnamn, lösenord och remember.
		public function SetCookie()
		{
			setcookie($this->userNameCookie, $this->GetUserName(), time()+3600);
			setcookie($this->passwordCookie, $this->GetPassword(), time()+3600);
		}
		
		//Funktion för att ta bort cookies.
		public function UnsetCookie()
		{
			setcookie($this->userNameCookie, "", time()-36000);
			setcookie($this->passwordCookie, "", time()-36000);
		}
		
		//Funktion som kollar om Cookies är satta.
		public function CookieIsset()
		{
			if (isset ($_COOKIE[$this->userNameCookie]) && isset ($_COOKIE[$this->passwordCookie]))
			{
				return true;
			}
			else 
			{
				return false;
			}
		}
		
		//Funktion för att få ut värdet från cookies till en array.
		public function CheckCookie()
		{			
			$infoArray = array($this->arrayUserName => $_COOKIE[$this->userNameCookie], $this->arrayPassword => $_COOKIE[$this->passwordCookie]);	
			
			return $infoArray;
		}
		
		//funktion för meddelanden.
		public function LoginMessage($message)
		{
			switch ($message)
			{
				case self::USER_LOGIN_YES:
					  	
					return "<p> Du är inloggad</p>";
					break;
					  
				case self::USER_LOGIN_FAIL:
						
				  	return "<p>Felaktiga inloggningsuppgifter.</p>";
				  	break;
					  
				case self::USER_LOGIN_NO:
				  	
					return "<p>Du är nu utloggad.<p>";
					break;
					
				default:
						
				 	return false;
			}
		}
		
		//funktion för headers.
		public function Headers($header)
		{
			switch ($header)
			{
				case self::LOGINCONTROLLER_HEADER:
					  	
					return "<h2>LoginController</h2>";
					break;
					
				default:
						
				 	return false;
			}	
		}
	}
?>